package org.example.lesson02;

import java.io.File;
import java.io.IOException;
import java.util.Scanner;

public class les02_Demo_test1 {
    public static void main(String[] args) throws IOException {
        //1.让用户输入一个有效路径
        System.out.println("请输入要扫描的路径：");
        Scanner in=new Scanner(System.in);
        //获取用户输入的路径
        String rootPath=in.next();
        //根据用户的输入创建一个File对象
        File rootFile = new File(rootPath);
        //2.校验这个路径是否有效
        //如果目录不存在
        if(!rootFile.exists()){
            System.out.println("你输入的路径不存在.");
            return;
        }
        //是不是一个目录
        if(!rootFile.isDirectory()){
            System.out.println("你输入的路径不是一个目录.");
            return;
        }
        //3.让用户输入指定字符串
        System.out.println("请输入查询的字符串.");
        String keyword=in.next();
        //4.扫描这个字符串是否有效
        if(keyword==null||keyword.isEmpty()){
            System.out.println("关键字不能为空.");
            return;
        }
        //扫描
        scan(rootFile,keyword);
    }
    public static void scan(File rootFile,String keyword) throws IOException {
        //5.扫描路径下的所有文件和子目录
        File[] files=rootFile.listFiles();
        //判断数组是不是为空
        if(files.length==0){
            //不操作
            return;
        }
        //循环
        for (File file : files) {
            //6.如果是目录则跳过
            if(file.isFile()){
                //7.如果是文件，就判断文件名中是否包含指定字符
                //获取文件名
                String fileName = file.getName();
                //8.如果包含指定字符，询问用户是否执行删除
                if(fileName.contains(keyword)){
                    System.out.println("找到文件："+file.getCanonicalPath()+"  包含关键字："+keyword+", 是否删除？(Y/N)");
                    //接收用户的指令
                    Scanner scanner=new Scanner(System.in);
                    String next=scanner.next();
                    //9.如果用户确认删除，则执行删除操作
                    if(next.toLowerCase().equals("y")){
                        //删除文件
                        file.delete();
                        System.out.println("删除文件："+file.getCanonicalPath()+"成功");
                    }
                }
            }else{
                //递归扫描
                scan(file,keyword);
            }
        }
    }
}
